#ifndef BOX_MODEL_CREATOR_H_JM_20120702
#define BOX_MODEL_CREATOR_H_JM_20120702
/**
 * @file BoxModelCreator.h
 * Interface pozadovany po tvorcoch boxov.
 **/

// ## bobox
#include "bobox_runtime.hpp"

namespace jm4bbx {
/**
 * Rozhranie vyzadovane po tvorcoch boxov pouzivanych pre vytvarani 
 * boxov v runtime. Rzohranie pozaduje registrator 
 * {@link jm4bbx::BoxCreatorRegistrator}, ktory sprostredkuva mapovanie 
 * id boxu v txt modele vypoctu a tvorca boxu.
 **/
class BoxModelCreator {
public:
	/**
	 * Vytvor box - resp. vytvor model boxu pomocou ktoreho sa neskor vytvori 
	 * box.
	 **/
	virtual bobox::box_model_ptr_type createBox(bobox::box_model_id_type id, 
		bobox::box_tid_type tid, bobox::runtime* rt, 
		const bobox::parameters &params) = 0;
};

}


#endif
